package com.ssmk.utlis;

import android.util.Log;

import com.ssmk.BuildConfig;

/**
 * Created by Rex on 2017/6/19.
 */

public class Logger {

    public static boolean DEBUG = BuildConfig.DEBUG;

    private static final String TAG = Logger.class.getSimpleName();

    private static final int LOG_MAX_LENGTH = 2000;

    public static void debugEnabled(boolean enabled) {
        DEBUG = enabled;
    }

    public static void i(String msg) {
        i(TAG, msg);
    }

    public static void i(String tag, String msg) {
        if (DEBUG && null != msg) {
            Log.i(tag, msg);
        }
    }

    public static void d(String msg) {
        d(TAG, msg);
    }

    public static void d(String tag, String msg) {
        if (DEBUG && null != msg) {
            Log.d(tag, msg);
        }
    }

    public static void v(String msg) {
        v(TAG, msg);
    }

    public static void v(String tag, String msg) {
        if (DEBUG && null != msg) {
            Log.v(tag, msg);
        }
    }

    public static void w(String msg) {
        w(TAG, msg);
    }

    public static void w(String tag, String msg) {
        if (DEBUG && null != msg) {
            Log.w(tag, msg);
        }
    }

    public static void e(String msg) {
        e(TAG, msg);
    }

    public static void e(String tag, String msg) {
        if (DEBUG && null != msg) {
            Log.e(tag, msg);
        }
    }

    public static void e(Throwable e) {
        if (DEBUG && null != e) {
            e.printStackTrace();
        }
    }

    /**
     * 当日志过多打印不出来的时候调用这个方法
     *
     * @param msg
     * @param split
     */
    public static void i(String msg, boolean split) {
        if (!split) {
            i(TAG, msg);
        } else {
            for (int i = 0; i <= msg.length() / LOG_MAX_LENGTH; i++) {
                if (i * LOG_MAX_LENGTH + LOG_MAX_LENGTH >= msg.length()) {
                    String msg_1 = msg.substring(i * LOG_MAX_LENGTH, msg.length());
                    i(TAG, msg_1);
                } else {
                    String msg_1 = msg.substring(i * LOG_MAX_LENGTH, i * LOG_MAX_LENGTH + LOG_MAX_LENGTH);
                    i(TAG, msg_1);
                }
            }
        }
    }

}
